package biblioteca.persistencia;



import java.io.Serializable;
import javax.persistence.Basic;
import javax.persistence.CascadeType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.OneToMany;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
//import javax.persistence.Column;
import javax.persistence.Entity;
//import javax.persistence.GeneratedValue;
//import javax.persistence.GenerationType;
import javax.persistence.Id;
import com.google.appengine.api.datastore.Key;

import java.util.*;



@Entity
public class Socio implements Serializable {
	
	
	@Id
	@GeneratedValue(strategy = GenerationType.IDENTITY)
	private Key id;
	
	@Basic
	private String funcion;// o adminstrador , usuario o visitante
	
	@Basic
	private String email;
	
	@Basic
	private String nombre;
	
	@Basic
	private String apellidos;
	
	@Basic
	private String edad;
	
	@Basic
	private String dni;
	
	@Temporal (TemporalType.DATE)
	private Date fechaAlta;
	
	@Temporal (TemporalType.DATE)
	private Date fechaBaja;

	@OneToMany(mappedBy="socio", cascade=CascadeType.ALL)
	private List<Sancion> sanciones= new ArrayList<Sancion>();

    public Socio() {
    }
	
	
	public Socio(String email, String dni, String apellidos, String nombre, String edad){
		this.email=email;
		this.dni=dni;
		this.apellidos=apellidos;
		this.nombre=nombre;
		this.edad=edad;
		this.fechaAlta=new Date();
		this.fechaBaja=null;
	}


	public Key getId() {
		return id;
	}


	public void setId(Key id) {
		this.id = id;
	}


	public String getFuncion() {
		return funcion;
	}


	public void setFuncion(String funcion) {
		this.funcion = funcion;
	}


	public String getEmail() {
		return email;
	}


	public void setEmail(String email) {
		this.email = email;
	}


	public String getNombre() {
		return nombre;
	}


	public void setNombre(String nombre) {
		this.nombre = nombre;
	}


	public String getApellidos() {
		return apellidos;
	}


	public void setApellidos(String apellidos) {
		this.apellidos = apellidos;
	}


	public String getEdad() {
		return edad;
	}


	public void setEdad(String edad) {
		this.edad = edad;
	}

	public String getDni() {
		return dni;
	}


	public void setDni(String dni) {
		this.dni = dni;
	}


	public Date getFechaAlta() {
		return fechaAlta;
	}


	public void setFechaAlta(Date fechaAlta) {
		this.fechaAlta = fechaAlta;
	}


	public Date getFechaBaja() {
		return fechaBaja;
	}


	public void setFechaBaja(Date fechaBaja) {
		this.fechaBaja = fechaBaja;
	}

	public List<Sancion> getSanciones() {
		return sanciones;
	}


	public void setSanciones(List<Sancion> sanciones) {
		this.sanciones = sanciones;
	}



}


